package itheima03;

import domain.Person;

import java.lang.reflect.Constructor;

/*
    反射创建对象的快捷方式
    步骤:
        1.获取Class类型的对象(三种方式,建议使用第三种forName)
        2.java.lang.Class类 成员方法
            public T newInstance(): 执行空参构造方法,创建一个对象

            内部原理:
                1.内部会获取空参构造方法对象,要求类中必须定义空参构造
                2.空参构造方法对象调用newInstance(Construct类中的),创建一个对象


 */
/*public class Demo07NewInstance {
    public static void main(String[] args) throws Exception {
        //1.获取Class类型的对象(三种方式,建议使用第三种forName)
        Class<?> c = Class.forName("domain.Person");

        //2.java.lang.Class类 成员方法: newInstance
        Person p = (Person)c.newInstance();
        System.out.println(p);
    }
}*/

public class Demo07NewInstance {
    public static void main(String[] args) throws ClassNotFoundException, IllegalAccessException, InstantiationException {
        Class<?> c=Class.forName("domain.Person");
        Person person =(Person)c.newInstance();
        System.out.println(person);
    }
}